Given the ubiquitous nature of mobile electronic devices such as, for example, mobile communication devices like cellular telephones, many people are utilizing an expanding variety of applications that are executable at such mobile electronic devices. For example, applications for providing services related to communications, media sharing, information gathering, education, gaming, and many others have been developed, fueled by consumer demand. One particular area in which consumer demand has triggered an expansion of services relates to the establishment of communication sessions during which, for example, Internet telephone calls, multimedia distribution, multimedia conferences and the like may be established. One particular protocol for setting up such sessions is the Session Initiation Protocol (SIP).
SIP is an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. SIP is widely used as a signaling protocol for Voice over Internet Protocol (VoIP) and media sharing applications. SIP is addressing neutral, with addresses expressed as a uniform resource locator (URL), a uniform resource identifier (URI), a telephone number, an email like address, or the like. SIP is generally considered to be lightweight since it has a limited number of methods to reduce complexity, and transport-independent since it can be used with User Datagram Protocol (UDP), Transport Control Protocol (TCP) and other transport protocols.
SIP clients may use, for example, TCP or UDP to connect to a SIP server and/or other SIP endpoints. As such, SIP may be used in setting up and tearing down voice or video calls or in any application where session initiation is employed. SIP, therefore, provides a signaling and call setup protocol for IP-based communications that can support a superset of call processing functions and features present in the public switched telephone network (PSTN).
SIP is a peer-to-peer protocol which works in concert with several other protocols and is typically only involved in the signaling portion of a communication session. SIP invitations are used to create sessions and SIP signaling is used to carry session descriptions that allow participants to agree on a set of compatible media types. SIP servers, or proxy servers, may help route requests to users, authenticate and authorize users for services, implement provider call-routing policies, provide features to users, etc. SIP also provides a registration function to allow users to upload their current locations to the proxy server.
Despite the great utility of SIP, SIP signaling messages could be considered by some to be bulky since they may have a message size of about 1000 bytes. Accordingly, it may become difficult to efficiently transport SIP messages over radio frequency (RF) channels since RF channels may be bandwidth limited. For client-server based applications in which many SIP messages are communicated between clients and servers, delays (or latency) may be experienced. Delays, in general, are problematic for real-time sensitive applications.
Accordingly, it may be desirable to provide a mechanism by which to address at least some of the problems described above.